home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_1 / sface < prev    next >
Internet Message Format  |  1995-03-31  |  20KB

  1. Path: seq!spell
  2. From: David D Jansen <eldorado@ecn.purdue.edu>
  3. Subject:  v01i049:  sface - surface plotter 3D v1.0, Part01/01
  4. Newsgroups: comp.sources.hp48
  5. Followup-To: comp.sys.hp48
  6. Approved: spell@seq.uncwil.edu
  7.  
  8. Checksum: 1866833180 (verify with brik -cv)
  9. Submitted-by: David D Jansen <eldorado@ecn.purdue.edu>
  10. Posting-number: Volume 1, Issue 49
  11. Archive-name: sface/part01
  12.  
  13. BEGIN_RDME sface.rdme
  14. [ If you have Jim Donnelly's library TLLIB loaded you will
  15. probably have problems downloading the rpl source.  His library
  16. has a program MAT and the rpl has a varable MAT which causes the
  17. download to fail.  To get arround this just download either the
  18. asc or uuencoded source.  -chris]
  19. END_RDME
  20.  
  21. BEGIN_DOC sface.doc
  22. This is a repost of a three dimensional surface plotter.  After searching
  23. several ftp sites and noticing it wasn't there I decided to do this repost.
  24. There are two routines, a parameter variable and the equation and matrix
  25. data in this directory.  The function SFACE creates from the EQ, a data
  26. surface that is stored in the matrix, MAT.  From this matrix, TRACE draws
  27. the plot to the screen.  The parameters stored in SPAR (like PPAR) affect
  28. mostly the TRACE function.  This is useful for viewing at different angles
  29. of the same surface area, as the same surface is not recalculated each time.
  30. The variables in SPAR are:  Xmin, Xmax, Xincrement, Ymin, Ymax, Yincrement,
  31. theta, phi, p, z, h, v.  
  32.  
  33. Xmin and Xmax represent the range to be graphed, Xincrement is the value of 
  34. the spacing between plotted points.  The Ymin, Ymax, Yincrement is the same
  35. but for the Y dimension.
  36.  
  37. Theta and phi are the angles at which the X and Y axis are plotted.  These
  38. can be changed to give a more square or parallogram shape to the X-Y plane.
  39. To rotate a graph, choose the TRANSlate function in the matrix directory.
  40. Then reTRACE the graph.
  41.  
  42. H and v are the variables that control the horizontal and vertical scaling,
  43. pixelwise.  This will compress the graph (anti-zoom).  After changing these
  44. variables, just reTRACE.
  45.  
  46. P and z work in conjunction to plot certain elevations of the data.  To plot
  47. only that part of the graph greater than 0 for instance, set P to a positive
  48. value, to plot all of the graph below 0 set P to a negative value.  When
  49. P is 0 the ploting mode is returned to normal.  The actual cutoff value used
  50. is stored in variable Z.
  51.  
  52. This is public domain.
  53. If you have any questions, comments or suggestions, I'll try to help.
  54.  
  55. Dave
  56. END_DOC
  57.  
  58. BYTES: #E137h 3866.5
  59.  
  60. BEGIN_RPL sface
  61. %%HP: T(3)A(D)F(.);
  62. DIR
  63.  
  64. SFACE  \<<
  65.   SPAR OBJ\-> DROP 0
  66.   \-> xa xb xi ya yb yi theta phi p z h v d
  67.   \<<
  68.     -20 -21 -22 SF CF CF
  69.     RAD
  70.     ya yb FOR J
  71.       J 'Y' STO
  72.       xa xb  FOR I
  73.         I 'X' STO DEPTH 'd' STO
  74.         IFERR EQ \->NUM THEN
  75.           DEPTH d - DROPN 0
  76.         END
  77.         IF DUP TYPE 1 == THEN
  78.           DROP 0
  79.         END
  80.       yi STEP
  81.     xi STEP
  82.     yb ya - ABS 1 +
  83.     xb xa - ABS 1 +
  84.     2 \->LIST
  85.     \->ARRY 'MAT' STO
  86.     { X Y } PURGE
  87.     DEG
  88.     -20 -21 -22 CF SF SF
  89.     TRACE
  90.   \>>
  91. \>>
  92.  
  93. TRACE  \<<
  94.   SPAR OBJ\-> DROP \->
  95.   xa xb xi ya yb yi theta phi p z h v
  96.   \<<
  97.     0 0 0 0 0 \-> cphi sphi ctheta stheta prv
  98.     \<<
  99.       PICT PURGE
  100.       { # 0d # 0d } PVIEW
  101.       AXIS
  102.       RAD
  103.       theta \pi * 180 / \->NUM DUP
  104.       SIN 'stheta' STO
  105.       COS 'ctheta' STO
  106.       phi \pi * 180 / \->NUM DUP
  107.       SIN 'sphi' STO
  108.       COS 'cphi' STO
  109.       ya yb FOR j
  110.         j cphi * xa ctheta * - h * 65 + 0 RND # 1d *
  111.         63 j NEG sphi * xa stheta * - v * 31 + 0 RND
  112.         MAT 1 j ya - yi * 1 + 2 \->LIST GET
  113.         IF p 0 \=/ THEN
  114.           IF DUP DUP z < p 0 > AND SWAP z > p 0 < AND OR THEN
  115.             DROP z
  116.           END
  117.         END
  118.         + - # 1d * 2 \->LIST 'prv' STO
  119.         1 xa + xb FOR i
  120.           prv j cphi * i ctheta * - h * 65 + 0 RND # 1d *
  121.           63 j NEG sphi * i stheta * - v * 31 + 0 RND
  122.           MAT i xa - xi * 1 + j ya - yi * 1 + 2 \->LIST GET
  123.           IF p 0 \=/ THEN
  124.             IF DUP DUP z < p 0 > AND SWAP z > p 0 < AND OR THEN
  125.               DROP z
  126.             END
  127.           END
  128.           + - # 1d * 2 \->LIST DUP 'prv' STO
  129.           LINE
  130.         xi STEP
  131.       yi STEP
  132.       xa xb FOR i
  133.         ya cphi * i ctheta * - h * 65 + 0 RND # 1d *
  134.         63 ya NEG sphi * i stheta * - v * 31 + 0 RND
  135.         MAT i xa - xi * 1 + 1 2 \->LIST GET
  136.         IF p 0 \=/ THEN
  137.           IF DUP DUP z < p 0 > AND SWAP z > p 0 < AND OR THEN
  138.             DROP z
  139.           END
  140.         END
  141.         + - # 1d * 2 \->LIST 'prv' STO
  142.         1 ya + yb FOR j
  143.           prv j cphi * i ctheta * - h * 65 + 0 RND # 1d * 
  144.           63 j NEG sphi * i stheta * - v * 31 + 0 RND
  145.           MAT i xa - xi * 1 + j ya - yi * 1 + 2 \->LIST GET
  146.           IF p 0 \=/ THEN
  147.             IF DUP DUP z < p 0 > AND SWAP z > p 0 < AND OR THEN
  148.               DROP z
  149.             END
  150.           END
  151.           + - # 1d * 2 \->LIST DUP 'prv' STO
  152.           LINE
  153.         yi STEP
  154.       xi STEP
  155.       DEG
  156.       PICT RCL 'GRPH' STO
  157.       DO
  158.       UNTIL KEY END DROP
  159.     \>>
  160.   \>>
  161. \>>
  162. AXIS  \<<
  163.   SPAR OBJ\-> DROP \->
  164.   xa xb xi ya yb yi theta phi p z h v
  165.   \<<
  166.     DEG
  167.     { # 65d # 32d } DUP DUP
  168.     { # 65d # 0d } LINE
  169.     10 h * theta COS * NEG 65 + 0 RND # 1d *
  170.     63 10 v * theta SIN * NEG 31 + - 0 RND # 1d *
  171.     2 \->LIST LINE
  172.     10 h * phi COS * 65 + 0 RND # 1d *
  173.     63 10 v * phi SIN * NEG 31 + - 0 RND # 1d *
  174.     2 \->LIST LINE
  175.   \>>
  176. \>>
  177.  
  178. SPAR { -5 5 1 -5 5 1 30 45 0 0 5 3 }
  179.  
  180. EQ 'Y^2-X^2'
  181.  
  182. MAT [[ 0 9 16 21 24 25 24 21 16 9 0 ]
  183.  [ -9 0 7 12 15 16 15 12 7 0 -9 ]
  184.  [ -16 -7 0 5 8 9 8 5 0 -7 -16 ]
  185.  [ -21 -12 -5 0 3 4 3 0 -5 -12 -21 ]
  186.  [ -24 -15 -8 -3 0 1 0 -3 -8 -15 -24 ]
  187.  [ -25 -16 -9 -4 -1 0 -1 -4 -9 -16 -25 ]
  188.  [ -24 -15 -8 -3 0 1 0 -3 -8 -15 -24 ]
  189.  [ -21 -12 -5 0 3 4 3 0 -5 -12 -21 ]
  190.  [ -16 -7 0 5 8 9 8 5 0 -7 -16 ]
  191.  [ -9 0 7 12 15 16 15 12 7 0 -9 ]
  192.  [ 0 9 16 21 24 25 24 21 16 9 0 ]]
  193. END
  194. END_RPL
  195.  
  196. BEGIN_ASC sface.asc
  197. %%HP: T(3)A(D)F(.);
  198. "69A20FF799A100000030D41445308E9209A7003392020000B0000B0000000000
  199. 0000000000000000000000009010000000000006101000000000000120100000
  200. 0000000420100000000000052010000000000004201000000000000120100000
  201. 0000000610000000000000009000000000000000000000000000000099000000
  202. 0000000000000000000000007010000000000002101000000000000510100000
  203. 0000000610100000000000051010000000000002100000000000000070000000
  204. 0000000000000000000000009910000000000006190000000000000079000000
  205. 0000000000000000000000005000000000000000800000000000000090000000
  206. 0000000080000000000000005000000000000000000000000000000079100000
  207. 0000000619100000000000012910000000000002190000000000000059000000
  208. 0000000000000000000000003000000000000000400000000000000030000000
  209. 0000000000000000000000005910000000000002191000000000000129100000
  210. 0000000429100000000000051900000000000000890000000000000039000000
  211. 0000000000000000000000001000000000000000000000000000000039000000
  212. 0000000089100000000000051910000000000004291000000000000529100000
  213. 0000000619000000000000009900000000000000490000000000000019000000
  214. 0000000000000000000000001900000000000000490000000000000099100000
  215. 0000000619100000000000052910000000000004291000000000000519000000
  216. 0000000089000000000000003900000000000000000000000000000010000000
  217. 0000000000000000000000003900000000000000891000000000000519100000
  218. 0000000429100000000000012910000000000002190000000000000059000000
  219. 0000000000000000000000003000000000000000400000000000000030000000
  220. 0000000000000000000000005910000000000002191000000000000129100000
  221. 0000000619000000000000007900000000000000000000000000000050000000
  222. 0000000080000000000000009000000000000000800000000000000050000000
  223. 0000000000000000000000007910000000000006190000000000000099000000
  224. 0000000000000000000000007010000000000002101000000000000510100000
  225. 0000000610100000000000051010000000000002100000000000000070000000
  226. 0000000000000000000000009900000000000000000000000000000090100000
  227. 0000000610100000000000012010000000000004201000000000000520100000
  228. 0000000420100000000000012010000000000006100000000000000090000000
  229. 00000000008B700205415208BA2084E201095ED2A2D20B184E201085ED2A2D20
  230. B190DA1B2130D300040350514254047A20AD3A2D13A29C2A2AD3A2D13A29C2A2
  231. 3392010000000000000303392010000000000005404B2A24B2A2D13A23F2A2B2
  232. 13027000401485943540D9D20E163284E204035051425B7FC18DBF11C432D6E2
  233. 0208716D6E20208726D6E20208796D6E20209716D6E20209726D6E20209796D6
  234. E20504786564716D6E2030078696D6E201007D6E2010A7D6E201086D6E201067
  235. E1632993C147A20E4A20510001400000000000000E4A20510000200000000000
  236. 000B213078BF178BF147A20E4A20510001400000000000000E4A205100000000
  237. 00000000000B2130893E1339201000000000000010D6E201086EEDA1D6E20504
  238. 786564716505B1EEDA1599A133920100000000000056076BA14B2A255DB1E4A2
  239. 0510001000000000000000EEDA13392010000000000003603392010000000000
  240. 00010D6E201067EEDA1D6E20504786564716CA4B1EEDA1599A13392010000000
  241. 0000013076BA190DA14B2A255DB1E4A20510001000000000000000EEDA1ED2A2
  242. 387C1893E1339201000000000000010D6E201086EEDA1D6E2030078696505B1E
  243. EDA133920100000000000056076BA14B2A255DB1E4A205100010000000000000
  244. 00EEDA1339201000000000000360339201000000000000010D6E201067EEDA1D
  245. 6E2030078696CA4B1EEDA1599A133920100000000000013076BA190DA14B2A25
  246. 5DB1E4A20510001000000000000000EEDA1ED2A2387C1893E1EF53293632B213
  247. 09B30050452514345450D9D20E163284E204035051425B7FC18DBF11C432D6E2
  248. 0208716D6E20208726D6E20208796D6E20209716D6E20209726D6E20209796D6
  249. E20504786564716D6E2030078696D6E201007D6E2010A7D6E201086D6E201067
  250. E16324B2A24B2A24B2A24B2A24B2A21C432D6E204036078696D6E20403707869
  251. 6D6E2060364786564716D6E2060374786564716D6E2030072767E1632634E1EF
  252. E0247A20E4A20510000000000000000000E4A20510000000000000000000B213
  253. 00F2E184E2040148594354B3C1D6E20504786564716DBAA1EEDA133920200000
  254. 000000081050FA14E5A178BF1CA4B145632D6E206037478656471697632DCC02
  255. 505B145632D6E206036478656471697632DCC02D6E2030078696DBAA1EEDA133
  256. 920200000000000081050FA14E5A178BF1CA4B145632D6E20403707869697632
  257. DCC02505B145632D6E20403607869697632DCC02D6E20209716D6E202097260A
  258. 132D6E2010A6D6E2010A6D6E204036078696EEDA1D6E20208716D6E206036478
  259. 6564716EEDA190DA1D6E201086EEDA133920100000000000056076BA14B2A255
  260. DB1E4A20510001000000000000000EEDA1339201000000000000360D6E2010A6
  261. 599A1D6E204037078696EEDA1D6E20208716D6E2060374786564716EEDA190DA
  262. 1D6E201067EEDA133920100000000000013076BA14B2A255DB184E2030D41445
  263. 9C2A2D6E2010A6D6E2020971690DA1D6E20209796EEDA19C2A276BA1ED2A2387
  264. C16C7D13CE22D6E2010074B2A2D9AE1AFE22D9D203CE2278BF178BF1D6E2010A
  265. 7EBBE1D6E2010074B2A2D5CE1387E1DBBF1D6E2010A7D5CE1D6E2010074B2A2E
  266. BBE1387E1908E1AFE22D9D208DBF1D6E2010A7B21305DF22B21305DF2276BA19
  267. 0DA1E4A20510001000000000000000EEDA1ED2A2387C145632D6E20300727679
  268. 7632DCC029C2A2D6E2020871676BA1D6E202087260A132D6E201096D6E203007
  269. 2767D6E2010A6D6E204036078696EEDA1D6E201096D6E2060364786564716EED
  270. A190DA1D6E201086EEDA133920100000000000056076BA14B2A255DB1E4A2051
  271. 0001000000000000000EEDA1339201000000000000360D6E2010A6599A1D6E20
  272. 4037078696EEDA1D6E201096D6E2060374786564716EEDA190DA1D6E201067EE
  273. DA133920100000000000013076BA14B2A255DB184E2030D41445D6E201096D6E
  274. 2020871690DA1D6E20208796EEDA19C2A276BA1D6E2010A6D6E2020971690DA1
  275. D6E20209796EEDA19C2A276BA1ED2A2387C16C7D13CE22D6E2010074B2A2D9AE
  276. 1AFE22D9D203CE2278BF178BF1D6E2010A7EBBE1D6E2010074B2A2D5CE1387E1
  277. DBBF1D6E2010A7D5CE1D6E2010074B2A2EBBE1387E1908E1AFE22D9D208DBF1D
  278. 6E2010A7B21305DF22B21305DF2276BA190DA1E4A20510001000000000000000
  279. EEDA1ED2A2387C178BF145632D6E203007276797632DCC02893E1D6E20208796
  280. 08332D6E2020979608332D6E20208716D6E202087260A132D6E201096D6E2020
  281. 9716D6E204036078696EEDA1D6E201096D6E2060364786564716EEDA190DA1D6
  282. E201086EEDA133920100000000000056076BA14B2A255DB1E4A2051000100000
  283. 0000000000EEDA1339201000000000000360D6E20209716599A1D6E204037078
  284. 696EEDA1D6E201096D6E2060374786564716EEDA190DA1D6E201067EEDA13392
  285. 0100000000000013076BA14B2A255DB184E2030D41445D6E201096D6E2020871
  286. 690DA1D6E20208796EEDA19C2A276BA19C2A2ED2A2387C16C7D13CE22D6E2010
  287. 074B2A2D9AE1AFE22D9D203CE2278BF178BF1D6E2010A7EBBE1D6E2010074B2A
  288. 2D5CE1387E1DBBF1D6E2010A7D5CE1D6E2010074B2A2EBBE1387E1908E1AFE22
  289. D9D208DBF1D6E2010A7B21305DF22B21305DF2276BA190DA1E4A205100010000
  290. 00000000000EEDA1ED2A2387C145632D6E203007276797632DCC029C2A2D6E20
  291. 20971676BA1D6E202097260A132D6E2010A6D6E2030072767D6E2010A6D6E204
  292. 036078696EEDA1D6E201096D6E2060364786564716EEDA190DA1D6E201086EED
  293. A133920100000000000056076BA14B2A255DB1E4A20510001000000000000000
  294. EEDA1339201000000000000360D6E2010A6599A1D6E204037078696EEDA1D6E2
  295. 01096D6E2060374786564716EEDA190DA1D6E201067EEDA13392010000000000
  296. 0013076BA14B2A255DB184E2030D41445D6E201096D6E2020871690DA1D6E202
  297. 08796EEDA19C2A276BA1D6E2010A6D6E2020971690DA1D6E20209796EEDA19C2
  298. A276BA1ED2A2387C16C7D13CE22D6E2010074B2A2D9AE1AFE22D9D203CE2278B
  299. F178BF1D6E2010A7EBBE1D6E2010074B2A2D5CE1387E1DBBF1D6E2010A7D5CE1
  300. D6E2010074B2A2EBBE1387E1908E1AFE22D9D208DBF1D6E2010A7B21305DF22B
  301. 21305DF2276BA190DA1E4A20510001000000000000000EEDA1ED2A2387C178BF
  302. 145632D6E203007276797632DCC02893E1D6E2020979608332D6E20208796083
  303. 32993C1634E104B024563284E20407425058497632DCC023C032DE032378A19B
  304. 6328DBF1EF532EF53293632B213065E0050356414345450D9D20E163284E2040
  305. 35051425B7FC18DBF14B2A21C432D6E20208716D6E20208726D6E20208796D6E
  306. 20209716D6E20209726D6E20209796D6E20504786564716D6E2030078696D6E2
  307. 01007D6E2010A7D6E201086D6E201067D6E201046E1632339201000000000000
  308. 029339201000000000000129339201000000000000229472C15D2C15D2C14B3C
  309. 1D6E20209716D6E202097260A132D6E2010A4D6E2010A44563284E2010959763
  310. 2DCC02D6E20208716D6E202087260A132D6E201094D6E2010944563284E20108
  311. 597632DCC0244CF145632D6E20104697632DCC02FD332D9D2084E202054154E5
  312. A1B2130F1732D9D2044CF1D6E20104690DA146CF14B2A2B21305DF223CE2278B
  313. F168BC19C2A2279E1AFE22D9D208DBF14B2A2B21305DF22D6E2020979608332D
  314. 6E2020879608332D6E20209726D6E2020971690DA1F1AA19C2A276BA1D6E2020
  315. 8726D6E2020871690DA1F1AA19C2A276BA1ED2A2387C1900D14563284E2030D4
  316. 144597632DCC0247A2084E20108584E201095B2130EFE02993C1339201000000
  317. 0000000293392010000000000001293392010000000000002295D2C1472C1472
  318. C184E20504525143454EF53293632B2130731E"
  319. END_ASC
  320.  
  321. BYTES: #E137h 3866.5
  322.  
  323. BEGIN_UU sface.uu
  324. begin 644 sface.bin
  325. M2%!(4#0X+466*O!_F1H````#34%4`^@ID'H`,RD@```+`+``````````````7
  326. M``````````D!``````!@`0$``````!`"`0``````0`(!``````!0`@$`````[
  327. M`$`"`0``````$`(!``````!@`0`````````)````````````````````F0``3
  328. M``````````````````<!```````@`0$``````%`!`0``````8`$!``````!05
  329. M`0$``````"`!``````````<```````````````````"9`0``````8)$`````#
  330. M````EP````````````````````4`````````"``````````)``````````@`4
  331. M````````!0```````````````````)<!``````!@D0$``````!"2`0``````U
  332. M()$`````````E0````````````````````,`````````!``````````#````:
  333. M````````````````E0$``````""1`0``````$)(!``````!`D@$``````%"15
  334. M`````````)@`````````DP````````````````````$`````````````````!
  335. M``"3`````````)@!``````!0D0$``````$"2`0``````4)(!``````!@D0``K
  336. M``````"9`````````)0`````````D0```````````````````)$`````````U
  337. ME`````````"9`0``````8)$!``````!0D@$``````$"2`0``````4)$`````8
  338. M````F`````````"3`````````````````````0```````````````````),`@
  339. M````````F`$``````%"1`0``````0)(!```````0D@$``````""1````````A
  340. M`)4````````````````````#``````````0``````````P``````````````@
  341. M`````)4!```````@D0$``````!"2`0``````8)$`````````EP``````````5
  342. M``````````4`````````"``````````)``````````@`````````!0``````0
  343. M`````````````)<!``````!@D0````````"9````````````````````!P$`+
  344. M`````"`!`0``````4`$!``````!@`0$``````%`!`0``````(`$`````````#
  345. M!P```````````````````)D````````````````````)`0``````8`$!````4
  346. M```0`@$``````$`"`0``````4`(!``````!``@$``````!`"`0``````8`$`[
  347. M````````"0``````````N`<@4!0E@*L"2"X0D.4M*BVP@>0"`5C>HM("&PFM-
  348. ML1(#/0!`,`45)$5`IP+:H](Q*LFBHCTJ':.2+"HS*1`````````P,),"`0``I
  349. M````4`2THD(K*AVC,B\J*S$@!P`$05A)4P2=+>!A(T@N0#`%%22U]QS8^Q%,-
  350. M(VTN((`7UN8"`GAB;2X@@)?6Y@(">6%M+B"0)];F`@)Y:6TN4$"'5D87UN8":
  351. M`W!H:6TN$`#7Y@(!>FTN$(#6Y@(!=AXVDCD<="K@I`(5`!`$````````X*0";
  352. M%0```@```````+`2`X?[<;@?="K@I`(5`!`$````````X*0"%0``````````X
  353. M`+`2`YCC,9,"`0````````%M+A"`YMX:;2Y00(=61A=64!ONK5&9&C,I$```0
  354. M`````&5PMAJTHE+5&TXJ4`$``0````````#NK3&3`@$``````#`&,RD0````/
  355. M````$-#F`@%V[JW1Y@(%=&AE=&&LM.'>&I6I,9,"`0``````$`-GJY'0&K2B.
  356. M4M4;3BI0`0`!`````````.ZMX2TJ@\>!.1XS*1`````````0T.8"`6CNK='FT
  357. M`@-P:&D%M>'>&C,I$````````&5PMAJTHE+5&TXJ4`$``0````````#NK3&3H
  358. M`@$``````#`&,RD0````````$-#F`@%V[JW1Y@(#<&AIK+3AWAJ5J3&3`@$`L
  359. M`````!`#9ZN1T!JTHE+5&TXJ4`$``0````````#NK>$M*H/'@3D>_C628R,K-
  360. M,9`[``544D%#106=+>!A(T@N0#`%%22U]QS8^Q%,(VTN((`7UN8"`GAB;2X@4
  361. M@)?6Y@(">6%M+B"0)];F`@)Y:6TN4$"'5D87UN8"`W!H:6TN$`#7Y@(!>FTN_
  362. M$(#6Y@(!=AXV0BLJM*)"*RJTHD(K*L$TTN8"!&-P:&EM+D`P!X>6UN8"!F-TG
  363. M:&5T86TN8#!'AU9&%];F`@-P<G8>-F)#'OX.0J<"3BI0`0```````````$XJA
  364. M4`$````````````K,0`O'D@N0!"$E31%.QQM+E!`AU9&%]:K&NZM,9,"`@``D
  365. M````@`$%KT%>&H?[P4H;5#;2Y@(&<W1H971A>3;2S"`%M4%E(VTN8#!&AU9&.
  366. M%Y9G(\T,TN8"`W!H:;VJX=X:,RD@````````&%#P&N2E<;@?K+1!92-M+D`P'
  367. M!X>6EF<CS0Q24!M4-M+F`@1C<&AI>3;2S"!M+B"0%];F`@)Y8J`QTN8"`6IM^
  368. M+A"@UN8"!&-P:&GNK='F`@)X86TN8#!&AU9&%^;>&@FMT>8"`6CNK3&3`@$`$
  369. M`````%`&9ZM!*RI5O>&D`A4`$`````````#@WAHS*1````````!CT.8"`6J5\
  370. MJ='F`@1S<&AI[JW1Y@(">&%M+F`P1X=61A?FWAH)K='F`@%V[JTQDP(!````^
  371. M```0`V>K02LJ5;V!Y`(#34%4R:+2Y@(!:FTN()`7EM`:;2X@D)?FWAK)HG*V%
  372. M&MZB,G@<QM<Q[")M+A``1RLJG>JA[R*=+3#L(H?[<;@?;2X0H.>['FTN$`!'Q
  373. M*RI=[#%X'KW[T>8"`7I=[-'F`@%PM*+BNQZ#YY&`'OHNTMD"V/O1Y@(!>BLQ#
  374. M4/TB*S%0_2)GJY'0&DXJ4`$``0````````#NK>$M*H/'064C;2XP`"=GEV<C_
  375. MS0R2+"IM+B"`%W:V&FTN((`G!AHC;2X0D-;F`@-P<G9M+A"@UN8"!&-P:&GNH
  376. MK='F`@%I;2Y@,$:'5D87YMX:":W1Y@(!:.ZM,9,"`0``````4`9GJT$K*E6]5
  377. MX:0"%0`0`````````.#>&C,I$````````&/0Y@(!:I6IT>8"!'-P:&GNK='F^
  378. M`@%I;2Y@,$>'5D87YMX:":W1Y@(!=NZM,9,"`0``````$`-GJT$K*E6]@>0"[
  379. M`TU!5&TN$)#6Y@(">&$)K='F`@)X:>ZMD2PJ9ZO1Y@(!:FTN()`7EM`:;2X@6
  380. MD)?FWAK)HG*V&MZB,G@<QM<Q[")M+A``1RLJG>JA[R*=+3#L(H?[<;@?;2X04
  381. MH.>['FTN$`!'*RI=[#%X'KW[T>8"`7I=[-'F`@%PM*+BNQZ#YY&`'OHNTMD"I
  382. MV/O1Y@(!>BLQ4/TB*S%0_2)GJY'0&DXJ4`$``0````````#NK>$M*H/'<;@?G
  383. M5#;2Y@(#<')V>3;2S""8X]'F`@)X:8`STN8"`GEI@#/2Y@(">&%M+B"`)P8:H
  384. M(VTN$)#6Y@(">6%M+D`P!H>6YMX:;2X0D-;F`@9C=&AE=&'NK9'0&FTN$(#FE
  385. MWAHS*1````````!E<+8:M*)2U1M.*E`!``$`````````[JTQDP(!```````PK
  386. M!FTN()`75ID:;2Y`,`>'EN;>&FTN$)#6Y@(&<W1H971A[JV1T!IM+A!@Y]X:E
  387. M,RD0````````,7"V&K2B4M4;2"XPT!1$U>8"`6EM+B"`%Y;0&FTN(("7YMX:$
  388. MR:)RMAK)HN(M*H/'87P=PR[2Y@(!<+2BTJD>^B[2V0+#+G*X'X?[T>8"`7J^=
  389. MZ]'F`@%PM*+2Q1Z#Y]&['VTN$*#7Q1YM+A``1RLJONLQ>!X)Z*'O(ITM@+T?;
  390. M;2X0H+<2`]4OLA(#U2]RMAH)K>&D`A4`$`````````#@WAK>HC)X'%0VTN8"M
  391. M`W!R=GDVTLP@R:+2Y@(">6%GJ]'F`@)Y8J`QTN8"`6IM+C``)V?7Y@(!:FTN<
  392. M0#`&AY;FWAIM+A"0UN8"!F-T:&5T8>ZMD=`:;2X0@.;>&C,I$````````&5PO
  393. MMAJTHE+5&TXJ4`$``0````````#NK3&3`@$``````#`&;2X0H%:9&FTN0#`'/
  394. MAY;FWAIM+A"0UN8"!G-T:&5T8>ZMD=`:;2X08.?>&C,I$````````#%PMAJTL
  395. MHE+5&T@N,-`41-7F`@%I;2X@@!>6T!IM+B"`E^;>&LFB<K8:;2X0H-;F`@)Y[
  396. M80FMT>8"`GEI[JV1+"IGJ^$M*H/'87P=PR[2Y@(!<+2BTJD>^B[2V0+#+G*X#
  397. M'X?[T>8"`7J^Z]'F`@%PM*+2Q1Z#Y]&['VTN$*#7Q1YM+A``1RLJONLQ>!X)5
  398. MZ*'O(ITM@+T?;2X0H+<2`]4OLA(#U2]RMAH)K>&D`A4`$`````````#@WAK>=
  399. MHC)X'(?[064C;2XP`"=GEV<CS0R".1YM+B"0EP8X(VTN(("7!C@CF<-A0QY`!
  400. M"T)E(T@N0'`D!8649R/-##(,(^TP,H<:N3:"O1_^->)?(SDVLA(#5@Y0,&443
  401. M-%14T-D"'C:"Y`($4U!!4GO/@;T?M*(23"-M+B"`%];F`@)X8FTN(("7UN8"T
  402. M`GEA;2X@D"?6Y@(">6EM+E!`AU9&%];F`@-P:&EM+A``U^8"`7IM+A"`UN8"_
  403. M`79M+A!`YF$C,RD0````````(#F3`@$``````!"2,RD0````````(DDG'-7"5
  404. M42T<M,/1Y@(">6%M+B"0)P8:(VTN$*#4Y@(!2E0V@N0"`5EY-M+,(&TN((`7A
  405. MUN8"`GABH#'2Y@(!26TN$)!$92-(+A"`E6<CS0Q"Q!]4-M+F`@%D>3;2S"#?S
  406. M,]+9`D@N(%`415X:*S'P<2.=+4#$'VTN$$"6T!ID_$$K*BLQ4/TBPRYRN!^&@
  407. MRY$L*G+IH>\BG2V`O1^THK(2`]4OTN8"`GEI@#/2Y@(">&F`,]+F`@)Y8FTN0
  408. M()`7EM`:'ZJ1+"IGJ]'F`@)X8FTN((`7EM`:'ZJ1+"IGJ^$M*H/'D0`=5#:"4
  409. MY`(#34%4>3;2S"!T*H#D`@%82"X0D+42`_X.DCD<,RD0````````(#F3`@$`Y
  410. H`````!"2,RD0````````(EDM''3"02<<2"Y00"45-%3D7R,Y-K(2`[(28
  411. ``
  412. end
  413. END_UU
  414.